// 饿汉式单例模式
class DateUtil {
  // 2. 添加私有的静态对象供外部使用
  static dateUtil = new DateUtil();
  // 1. 定义构造函数为私有的，防止外部直接通过new调用
  private constructor() {}

  formatDate() {}
  diffDateByDay() {} // 两个日期之间的天数计算
  diffDateByHour() {} // 两个日期之间的小时计算
  timeConversion(restTime: number) {} // 天 时 分 秒
}

console.log(DateUtil.dateUtil, DateUtil.dateUtil.formatDate());

// 懒汉式单例模式
class DateUtil2 {
  // 1. 声明静态属性
  static dateUtils: DateUtil2;
  // 2. 为外部提供创建对象方法
  static getInstance() {
    if (!this.dateUtils) {
      this.dateUtils = new DateUtil2();
    }

    return this.dateUtils;
  }

  private constructor() {}

  formatDate() {}
  diffDateByDay() {} // 两个日期之间的天数计算
  diffDateByHour() {} // 两个日期之间的小时计算
  timeConversion(restTime: number) {} // 天 时 分 秒
}

export {};
